package com.yidu.ruifeng_logistics.service;

import com.yidu.ruifeng_logistics.entity.LogisticsStaff;
import com.yidu.ruifeng_logistics.vo.LogisticsStaffVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * (LogisticsStaff)表服务接口
 *员工表
 * @author 张皓超
 * @since 2021-03-09 14:29:18
 */
public interface LogisticsStaffService {

    /**
     * 通过ID查询单条数据
     *
     * @param staffId 主键
     * @return 实例对象
     */
    LogisticsStaff queryById(Integer staffId);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<LogisticsStaff> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param logisticsStaff 实例对象
     * @return 实例对象
     */
    LogisticsStaff insert(LogisticsStaff logisticsStaff);

    /**
     * 修改数据
     *
     * @param logisticsStaff 实例对象
     * @return 实例对象
     */
    LogisticsStaff update(LogisticsStaff logisticsStaff);

    /**
     * 通过主键删除数据
     *
     * @param staffId 主键
     * @return 是否成功
     */
    boolean deleteById(Integer staffId);


    /**
     * 通过实体作为筛选条件查询
     *
     * @param logisticsStaff 实例对象
     * @return 对象列表
     */
    List<LogisticsStaff> queryAll(LogisticsStaff logisticsStaff);



    /**
     * 根据用户名密码查询 返回行数
     * @param userName
     * @param userPwd
     * @return
     */
    int queryUserNameAndPwdReturnCount(@Param("userName") String userName, @Param("userPwd") String userPwd);

    /**
     * 根据用户名密码查询 返回对象
     * @param userName
     * @param userPwd
     * @return
     */
    LogisticsStaff queryUserNameAndPwdReturnObj(@Param("userName") String userName,@Param("userPwd") String userPwd);


    Integer queryUserNameAndIdReturnCount(@Param("staffName") String staffName,@Param("staffId") Integer staffId);


    /**
     * 增加修改
     * @param staff
     * @return
     */
    Integer addAndUpdate(LogisticsStaffVo staff,String suserRoleId);

    /**
     * 根据用户名去数据库查询
     * @return
     */
    LogisticsStaff findUserByUsername(String username);
}
